#ifndef DATABASEHANDLER_H
#define DATABASEHANDLER_H

#include <QObject>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>
#include <QFile>
#include <QMessageBox>

class DatabaseHandler : public QObject
{
    Q_OBJECT
public:
    explicit DatabaseHandler(QObject *parent = nullptr);
    ~DatabaseHandler();

    // 数据库连接与初始化
    bool initDatabase(const QString &dbPath);

    // 联系人操作
    bool addContact(const QString &name, const QString &phone,
                   const QString &email, const QString &address);
    bool updateContact(int id, const QString &name, const QString &phone,
                      const QString &email, const QString &address);
    bool deleteContact(int id);
    QList<QList<QVariant>> getAllContacts();
    QList<QVariant> getContactById(int id);

    // 错误处理
    QString lastError() const;

private:
    QSqlDatabase m_db;
    QString m_lastError;

    bool createTables();
};

#endif // DATABASEHANDLER_H
